/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package br.inf.ufg.clinica.controller;

import br.inf.ufg.clinica.model.Empresa;
import br.inf.ufg.clinica.model.Medico;
import br.inf.ufg.clinica.model.Paciente;
import br.inf.ufg.clinica.model.Pessoa;
import br.inf.ufg.clinica.persistencia.EmpresaGravacao;
import br.inf.ufg.clinica.persistencia.MedicoGravacao;
import br.inf.ufg.clinica.persistencia.PacienteGravacao;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

/**
 *
 * @author Gustavo
 */
public class Operacoes {
    
    
    // Método para cadastrar um paciente no sistema.
    public static void cadastrarPaciente() throws ParseException {

        Scanner entrada = new Scanner(System.in);

        System.out.println("*****CADASTRO DO CLIENTE*****\n");
        System.out.println("IMPORTANTE ! TODOS OS CAMPOS SÃO OBRIGATÓRIOS");
        System.out.println("Id: ");
        int id = Integer.parseInt(entrada.nextLine().trim());
        System.out.println("Nome: ");
        String nome = entrada.nextLine();
        System.out.println("CPF: ");
        String cpf = entrada.nextLine();
        System.out.println("Endereço: ");
        String endereco = entrada.nextLine();
        System.out.println("Telefone: ");
        String telefone = entrada.nextLine();
         
        
        EmpresaGravacao listaEmpresa = new EmpresaGravacao();
                        
        listaEmpresa.imprimeListaEmpresa(listaEmpresa.getTodosObjetos());
        
        System.out.println("Informe o ID da Empresa: ");
                
        int id_empresa = Integer.parseInt(entrada.nextLine().trim());
                       
        Empresa empresa = listaEmpresa.getObjetoPorId(id_empresa);
                        
        System.out.println("Ativo(digite \"true\" ou \"false\"): ");
        boolean ativo = Boolean.parseBoolean(entrada.nextLine());
        System.out.println("Data da ativação: ");
        String data_ativacao = entrada.nextLine();                
        System.out.println("Pessoa para contato: ");
        String pessoa_contato = entrada.nextLine();
        if (pessoa_contato.equals("")) {
            pessoa_contato = "Nenhuma";
        }
        System.out.println("Observação: ");
        String observacao = entrada.nextLine();
        if (observacao.equals("")) {
            observacao = "Nenhuma";
        }

        Paciente paciente = new Paciente(observacao, ativo, data_ativacao, pessoa_contato, empresa, id, cpf, nome, endereco, telefone);
        PacienteGravacao gravaPaciente = new PacienteGravacao();
        gravaPaciente.gravarObjeto(paciente);

    }

    // Método para cadastrar um médico no sistema.
    public static void cadastrarMedico() throws ParseException {

        Scanner entrada = new Scanner(System.in);

        System.out.println("*****CADASTRO DO MEDICO*****\n");
        System.out.println("IMPORTANTE ! TODOS OS CAMPOS SÃO OBRIGATÓRIOS");
        System.out.println("Id: ");
        int id = Integer.parseInt(entrada.nextLine().trim());
        System.out.println("Nome: ");
        String nome = entrada.nextLine();
        System.out.println("CRM: ");
        int crm = Integer.parseInt(entrada.nextLine().trim());
        System.out.println("Especialidade: ");
        String especialidade = entrada.nextLine();
        System.out.println("Ativo(digite \"true\" ou \"false\"): ");
        boolean ativo = Boolean.parseBoolean(entrada.nextLine());
        System.out.println("Data da ativação: ");
        String data_ativacao = entrada.nextLine();
        SimpleDateFormat sf = new SimpleDateFormat("dd/MM/yyyy");
        Date data = sf.parse(data_ativacao);
        System.out.println("Observação: ");
        String observacao = entrada.nextLine();
        if (observacao.equals("")) {
            observacao = "Nenhuma";
        }

        Medico medico = new Medico(id, crm, nome, especialidade, observacao, ativo, data);
        MedicoGravacao gravaMedico = new MedicoGravacao();
        gravaMedico.gravarObjeto(medico);
    }

    // Método para cadastrar uma empresa no sistema.
    public static void cadastrarEmpresa() throws ParseException {

        Scanner entrada = new Scanner(System.in);

        System.out.println("*****CADASTRO DA EMPRESA*****\n");
        System.out.println("IMPORTANTE ! TODOS OS CAMPOS SÃO OBRIGATÓRIOS");
        System.out.println("Id: ");
        int id = Integer.parseInt(entrada.nextLine().trim());
        System.out.println("Nome: ");
        String nome = entrada.nextLine();
        System.out.println("CNPJ: ");
        String cnpj = entrada.nextLine();
        System.out.println("Endereço: ");
        String endereco = entrada.nextLine();
        System.out.println("Telefone: ");
        String telefone = entrada.nextLine();
        System.out.println("Pessoa para contato: \n");
        System.out.println("Id da pessoa: ");
        int id2 = Integer.parseInt(entrada.nextLine().trim());
        System.out.println("CPF: ");
        String cpf = entrada.nextLine();
        System.out.println("Nome da pessoa: ");
        String nome2 = entrada.nextLine();
        System.out.println("Endereço da pessoa: ");
        String endereco2 = entrada.nextLine();
        System.out.println("Telefone da pessoa: ");
        String telefone2 = entrada.nextLine();
        Pessoa pessoa = new Pessoa(id2, cpf, nome2, endereco2, telefone2);
        System.out.println("Observação: ");
        String observacao = entrada.nextLine();
        System.out.println("Ativo(digite \"true\" ou \"false\"): ");
        boolean ativo = Boolean.parseBoolean(entrada.nextLine());
        System.out.println("Data da ativação: ");
        String data_ativacao = entrada.nextLine();
        SimpleDateFormat sf = new SimpleDateFormat("dd/MM/yyyy");
        Date data = sf.parse(data_ativacao);

        Empresa empresa = new Empresa(cnpj, nome, id, endereco, telefone, pessoa, observacao, ativo, data);
        EmpresaGravacao gravaEmpresa = new EmpresaGravacao();
        gravaEmpresa.gravarObjeto(empresa);

    }
}
